1. Field of the Invention
The present invention relates to decoding of data packets received from a transmission channel, and, in particular, to an iterative decoder employing equalization of data packets.
2. Description of the Related Art
Many data transmission applications, including magnetic recording and wireless data communication systems, organize the data stream that is passed through a transmission channel into finite-length packets of data (xe2x80x9cdata packetsxe2x80x9d). The data may be user data that has been encoded using, for example, concatenated codes. A receiver that detects the data stream from the transmission channel first provides a sampled analog signal representing the encoded data as output channel samples. The term xe2x80x9coutput channel samplexe2x80x9d refers to data that has passed through a transmission channel such as a magnetic medium and magnetic read head of a magnetic recording system, or the over-air path of the wireless communication systems. The transmission channel may include memory and has a form of frequency gain and phase response. The signal containing the encoded data has an added noise component, signal distortion, and intersymbol interference (ISI) caused by the physical channel""s frequency response.
A receiver may employ an equalizer that applies decision feedback equalization (DFE) to the output channel samples representing the encoded data. DFE is a nonlinear method that utilizes previous decisions to cancel trailing ISI in the currently detected channel sample. DFE applies appropriate filtering of the current output channel sample and subtracts one or more appropriately filtered, previous decisions (those that contribute interference) from the current filtered output. Weights for filtering are selected based on a criterion, such as minimizing mean-square error.
Concatenated code systems for encoding and decoding user data use two or more component codes that are concatenated during the process of encoding data. Although the codes may be of any type, component codes are typically relatively simple codes, such as convolutional codes.
Concatenated code systems may employ iterative decoding of encoded data using either serial or parallel iterative decoding methods. Each of the serial or parallel iterative decoding methods may be employed for serial concatenated codes. Each of the serial or parallel iterative decoding methods may be employed for parallel concatenated codes. When employing iterative decoding of data encoded with a concatenated code, a block of data is input to the iterative decoder. The block boundaries desirably conform to symbol boundaries of the concatenated code. The iterative decoder comprises at least one decoding module having N component code decoders for decoding N component codes. Each decoding module and/or component code decoder typically includes a maximum a posteriori (MAP) decoder.
In an iterative decoding method, a block of the output channel samples representing encoded data is repetitively processed by the two or more decoding modules until a predetermined number (I) of decoding iterations are complete. An exemplary iterative decoder 100 employing serial iterative decoding is shown in FIG. 1. Each decoding module 101 performs a complete, xe2x80x9csoftxe2x80x9d decoding of the data encoded with a serial concatenated code. Each decoding module applies an iteration of the decoding process, and each iteration allows for higher confidence in the tentative decisions for bits in the output decoded data that are made based on the output channel samples of a detector. Each decoding module includes N component code decoders 110 (i.e., Decoder 1 through Decoder N). Each component code decoder corresponds to one of the N component codes employed by the concatenated code. Each of the component code decoders 110 may include, for example, a MAP decoder and a deinterleaver (not shown in FIG. 1).
For the implementation of iterative decoding shown in FIG. 1, I iterations of the decoding operations are performed on each block. A new block is applied to the first decoding module 101 as the previous data is applied to the next decoding module 101. The second decoding module 101 corresponds to the second decoding iteration. A fully decoded block is provided as output data from the Ith decoding module 101, corresponding to the Ith decoding iteration. Once all decoding modules 101 of iterative decoder 100 are loaded with data, the decoding process may occur in a pipeline fashion and/or continuously as each new block is applied. Loading data into decoding modules 101 of iterative decoder 100 may be either each decoding module 101 receiving a block for processing, or each component code decoder 110 receiving a block for processing.
The present invention relates to iteratively decoding a data packet that includes 1) applying decision feedback equalization to the data packet and 2) decoding of the packet for each iteration of the iterative decoding process. In accordance with an embodiment of the present invention, the iterative decoder first applies decision feedback equalization (DFE) to the data packet before or during a first decoding cycle of the data packet. An iteration of iterative decoding may be defined by completing both applying DFE to the packet and the corresponding decoding (in a decoding cycle) of the packet. For a second iteration, the iterative decoder applies DFE to the data packet during a second decoding cycle, wherein the DFE employs soft data generated by the decoding cycle for the data packet during the first iteration. In another embodiment, for each further iteration of decoding, DFE employs soft data generated for the data packet during the previous iteration of decoding. In another embodiment, during the first iteration the iterative decoder applies DFE to the current packet using a soft estimate of previous decisions, and the estimate may be generated by, for example, a slicer. A further embodiment of the present invention includes a decoder that may be either a serial or parallel iterative decoder. A further embodiment of the present invention is included in either a magnetic or a optical recording system; a wireless or cellular communication receiver; or a packet data network.